#include <stdio.h>

// 显示上面的三角形
void generate_upper(char letter, int padd_left) {
    int inner_padd = letter - 'A';
    for (char i = 'A'; i <= letter; i++) {
        // 前面的空格
        for (char sp = 0; sp < inner_padd + padd_left; sp++) {
            putchar(' ');
        }
        inner_padd--;
        // A ~ 当前字符
        for (char c = 'A'; c <= i; c++) {
            putchar(c);
        }
        // 当前-1 ~ A
        for (char c = i - 1; c >= 'A'; c--) {
            putchar(c);
        }
        putchar('\n');
    }
}

void generate_under(char letter) {
    // A ~ 当前字符
    for (char i = 'A'; i <= letter; i++) {
        // 前面的空格
        for (char sp = 0; sp < letter - i; sp++) {
            putchar(' ');
        }
        // A ~ 当前字符
        for (char c = 'A'; c <= i; c++) {
            putchar(c);
        }
        // 当前-1 ~ A
        for (char c = i - 1; c >= 'A'; c--) {
            putchar(c);
        }
        // 中间的空格
        for(int sp = 0; sp < (letter - i) * 2 + 1; sp++) {
            putchar(' ');
        }
        // A ~ 当前字符
        for (char c = 'A'; c <= i; c++) {
            putchar(c);
        }
        // 当前-1 ~ A
        for (char c = i - 1; c >= 'A'; c--) {
            putchar(c);
        }
        putchar('\n');
    }
}

int main() {
    while (1) {
        char c;
        if (scanf(" %c", &c) == EOF) {
            break;
        }
        generate_upper(c, c - 'A' + 1);
        generate_under(c);
    }
}
